using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace AiPlatformAdmin.Api.DTOs;

public class KnowledgeBaseDto
{
    public int Id { get; set; }
    public string Name { get; set; } = string.Empty;
    public string? Description { get; set; }
    public bool IsPublic { get; set; }
    public DateTime CreatedAt { get; set; }
    public DateTime UpdatedAt { get; set; }
    public int TenantId { get; set; }
    
    public List<int> AdminUserIds { get; set; } = new List<int>();
    public List<int> TeamAccessIds { get; set; } = new List<int>();
    public int DocumentCount { get; set; }
}

public class CreateKnowledgeBaseDto
{
    [Required]
    [MaxLength(200)]
    public string Name { get; set; } = string.Empty;

    [MaxLength(1000)]
    public string? Description { get; set; }

    public bool IsPublic { get; set; } = false;

    public List<int>? AdminUserIds { get; set; }
    public List<int>? TeamAccessIds { get; set; }
}

public class UpdateKnowledgeBaseDto
{
    [MaxLength(200)]
    public string? Name { get; set; }

    [MaxLength(1000)]
    public string? Description { get; set; }

    public bool? IsPublic { get; set; }

    public List<int>? AdminUserIds { get; set; }
    public List<int>? TeamAccessIds { get; set; }
}

